/*
 * @Description: 文件预览(开发环境需要使用ip访问，http://localhost/预览文件服务器可能会获取不到文件)
 * @Author: wind-lc
 * @version: 1.0
 * @Date: 2021-07-01 09:27:16
 * @LastEditTime: 2021-07-13 18:11:32
 * @FilePath: \cscec-pms-admin\src\utils\file-preview.js
 */
import vm from '../main'
import { Base64 } from 'js-base64'
import Vue from 'vue'

/**
 * @description: 文件预览(开发环境需要使用ip访问，http://localhost/预览文件服务器可能会获取不到文件)
 * @param {Object} params 平台文件服务器返回的文件对象，必须包含fileSize, alias, fileId
 * @return {Void}
 */
export default function(params) {
  const fileType = [
    '.pdf',
    '.doc',
    '.docx',
    '.xls',
    '.xlsx',
    '.ppt',
    '.pptx',
    '.png',
    '.jpg',
    '.jpeg',
    '.txt',
    '.mp3',
    '.wav',
    '.mp4',
    '.flv'
  ]
  try {
    const { suffixName, fileSize, alias, fileId } = params
    const origin = window.location.origin
    const href = '/api/ycloud-file-center/oper/download?access_token='
    const token = Vue.getAcloudProvider().getAccessToken()
    // 文件格式不包含
    if (fileType.findIndex(el => el === suffixName.toLowerCase()) < 0) {
      vm.$confirm({
        title: `该文件类型不支持附件在线查看！`,
        icon: 'warning',
        okText: '关闭',
        cancelText: '下载到本地预览',
        onOk() {},
        onCancel() {
          //当前窗口下载
          window.open(`${origin}${href}${token}&fileId=${fileId}`, '_parent')
        }
      })
      return
    }
    const previewUrl =
      'http://192.168.144.24:8012/onlinePreview?url=' +
      encodeURIComponent(Base64.encode(`${origin}${href}${token}&fileId=${fileId}&fullfilename=${alias}`))

    const previewUrlProd =
      'https://www.cscecxn.com:8012/onlinePreview?url=' +
      encodeURIComponent(Base64.encode(`${origin}${href}${token}&fileId=${fileId}&fullfilename=${alias}`))
    let flag = false; 
    if(origin==='https://pm.cscecxn.com'){
        flag = true;
      }else{
        flag = false;
      }
    if (parseInt(fileSize) / 1024 / 1024 >= 2) {
      // 超过2MB
      vm.$confirm({
        title: '文件大小超过2MB！',
        content: '在线查看可能会等待较长时间是否继续？',
        okText: '继续在线查看',
        cancelText: '下载到本地预览',
        onOk() {
          //打开新标签预览文件
          window.open(flag? previewUrlProd : previewUrl)
        },
        onCancel() {
          //当前窗口下载
          window.open(`${origin}${href}${token}&fileId=${fileId}`, '_parent')
        }
      })
    } else {
      //打开新标签预览文件
      window.open(flag? previewUrlProd : previewUrl)
    }
  } catch (error) {
    console.log(error)
  }
}
